package cn.steel.mapper;

import cn.steel.domain.entity.Cart;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CartMapper {
    List<Cart> findByUserId(@Param("userId") Long userId);
    Cart findByUserIdAndProductId(@Param("userId") Long userId, @Param("productId") Long productId);
    void insert(Cart cart);
    void updateByUserIdAndProductId(@Param("userId") Long userId, @Param("productId") Long productId,
                                    @Param("quantity") Integer quantity);
    void clearCartByUserId(@Param("userId") Long userId);
    void updateSelectionByUserIdAndProductId(@Param("userId") Long userId, @Param("productId") Long productId,
                                             @Param("selected") Boolean selected); // 新增：更新选中状态
    void updateAllSelectionByUserId(@Param("userId") Long userId, @Param("selected") Boolean selected); // 新增：全选/取消全选
    void deleteSelectedByUserId(@Param("userId") Long userId); // 新增：删除选中的商品
}